home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Controls / Visual Basic Controls.iso / vbcontrol / intmail2 / lsmain1.pas < prev    next >
Pascal/Delphi Source File  |  1999-03-24  |  2KB  |  96 lines

  1. unit lsmain1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   Mssocket, StdCtrls;
  8.  
  9. type
  10.  
  11.   TMyServerThread = class(TmsServerThread)
  12.   private
  13.     FOutStream: TStream;
  14.     FStatusStr: string;
  15.     procedure UpdateStatus;
  16.   protected
  17.     procedure Execute; override;
  18.   public
  19.     property OutStream: TStream read FOutStream write FOutStream;
  20.   end;
  21.  
  22.   TForm1 = class(TForm)
  23.     msListenerSocket1: TmsListenerSocket;
  24.     Memo1: TMemo;
  25.     procedure FormCreate(Sender: TObject);
  26.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  27.     procedure msListenerSocket1ServerThreadStart(Sender: TObject;
  28.       ServerThread: TmsServerThread);
  29.     procedure msListenerSocket1ServerThreadTerminate(Sender: TObject;
  30.       ServerThread: TmsServerThread);
  31.   private
  32.     { Private declarations }
  33.   public
  34.     { Public declarations }
  35.   end;
  36.  
  37. var
  38.   Form1: TForm1;
  39.  
  40. implementation
  41.  
  42. {$R *.DFM}
  43.  
  44. procedure TMyServerThread.UpdateStatus;
  45. begin
  46.   Form1.Memo1.Lines.Add(FStatusStr);
  47. end;
  48.  
  49. procedure TmyServerThread.Execute;
  50. begin
  51.   FStatusStr:='Reqested connection from '+Peer;
  52.   Synchronize(UpdateStatus);
  53.   FStatusStr:='Sending data to '+Peer;
  54.   Synchronize(UpdateStatus);
  55.   try
  56.     ServerSocket.SendStream(FOutStream);
  57.   except
  58.     on E:Exception do
  59.     begin
  60.       FStatusStr:='Error '+E.Message;
  61.       Synchronize(UpdateStatus);
  62.     end;
  63.   end;
  64.   FStatusStr:='Closing connection with '+Peer;
  65.   Synchronize(UpdateStatus);
  66.   ServerSocket.Disconnect;
  67. end;
  68.  
  69. procedure TForm1.FormCreate(Sender: TObject);
  70. begin
  71.   msListenerSocket1.ServerThreadClass:=TMyServerThread;
  72.   msListenerSocket1.Start;
  73. end;
  74.  
  75. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  76. begin
  77.   msListenerSocket1.Stop;
  78. end;
  79.  
  80. procedure TForm1.msListenerSocket1ServerThreadStart(Sender: TObject;
  81.   ServerThread: TmsServerThread);
  82. var
  83.   TempStream: TStream;
  84. begin
  85.   TempStream:=TFileStream.Create('myfile.txt',fmShareDenyWrite);
  86.   (ServerThread as TMyServerThread).OutStream:=TempStream;
  87. end;
  88.  
  89. procedure TForm1.msListenerSocket1ServerThreadTerminate(Sender: TObject;
  90.   ServerThread: TmsServerThread);
  91. begin
  92.   (ServerThread as TMyServerThread).OutStream.Free;
  93. end;
  94.  
  95. end.
  96.